package day18;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UdpServer {
    // 搭建一个UDP通信协议的服务器
    public static void main(String[] args) {
        // 声明一个数组 准备接收数据
        byte[] buf = new byte[1024];
        // 定义服务器启动的端口
        int port = 9999;
        // 声明接收数据的对象 udpServerSocket
        DatagramSocket socket = null;
        // 声明封装数据的对象
        DatagramPacket packet = null;
        try {
            // 创建socket，并指定端口号
            socket = new DatagramSocket(port);
            System.out.println("服务器：启动成功");
            // 接收数据存放到buf中，从buf的0位置开始，放满buf
            packet = new DatagramPacket(buf, 0, buf.length);
            System.out.println("服务器：等待接收数据");
            // 等待接收数据
            // receive 会阻塞程序运行 等待客户端发送数据
            // 得到的数据会存到buf中
            socket.receive(packet);
            // 输出得到的数据 数据长度 packet.getLength()
            System.out.println("服务器：接收的数据" + new String(buf, 0, packet.getLength()));
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭资源
            if (socket != null) {
                socket.close();
            }
        }
    }

}
